/*
    逻辑运算符4+2
    & | ! ^
    && ||
    作用:连接bool(关系运算式)值
 */

public class OperatorDemo07 {
    public static void main(String[] args) {
        //定义变量
        int i = 10;
        int j = 20;
        int k = 30;

        //基本逻辑运算
        // 测试 & 有false则false
        System.out.println((i > j) & (i < k));
        // 测试 | 有true则true
        System.out.println((i > j) | (i < k));
        // 测试 ! 取反
        System.out.println(i > j);
        System.out.println(!(i > j));
        // 测试 ^ 相同为false
        System.out.println((i < j) ^ (i < k));//true ^ true


        //短路逻辑运算符
        // 测试 && 左false则不计算右侧
        System.out.println(i);
        System.out.println((i > j) && (i++ > k));
        System.out.println(i);
        // 测试 || 左true则不计算右侧
        System.out.println(i);
        System.out.println((i < j) || (i++ > k));
        System.out.println(i);


        //????????????????????????
        //--------已解决---------
        //涉及 Java 和 C语言 区别 , C 中非零数可转为 1
        //boolean b = i++;//无法转换
        //boolean b = (boolean)(i++);//强制也不行







    }
}
